
#include <ddk.h>

class CVinciEvent {
public:
    inline CVinciEvent() {
        AuraEvent_Create(FALSE, SIGNALED, &m_event);
    }

    inline ~CVinciEvent() {
        AuraEvent_Destroy(m_event);
    }

    inline ECode Wait(
                /*[out]*/WaitResult * pResult,
                /*[out]*/EventState * pState) {
        return AuraEvent_Wait(m_event, INFINITE,
            (Aura_WaitResult*)pResult, (Aura_EventState*)pState);
    }

    inline ECode Notify(
                /*[in]*/ Aura_EventState state) {
        return AuraEvent_Signal(m_event, state);
    }


public:
    PVoid m_event;
};
